package com.chapter10.demo1;


import java.util.Arrays;

/**
 * 数组的拷贝：
 * arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
 * 这个方法接收5个参数，src是源数组，srcPos是源数组读取的起始位置，dest是目标数组，
 * destPos是目标数组写入的起始位置，length是复制的长度。
 *
 *
 * arraycopy方法仅仅是复制了对象的引用，并没有复制实际的对象。
 */
public class ArrayCopy {
    public static void main(String[] args) {
        int[] arr1 = new int[]{1,2,3,4,5};
        int[] arr2 = new int[5];
        int[] arr3 = new int[5];

        System.arraycopy(arr1,0,arr2,0,arr2.length);
        System.out.println(Arrays.toString(arr1));  //[1, 2, 3, 4, 5]
        System.out.println(Arrays.toString(arr2));  //[1, 2, 3, 4, 5]

        //修改了arr2数组中第一个元素的值
        arr2[0] = 10;
        System.out.println(Arrays.toString(arr2));  //[10, 2, 3, 4, 5]
        System.out.println(Arrays.toString(arr1));  //[1, 2, 3, 4, 5]


        System.arraycopy(arr1,0,arr3,1,3);
        System.out.println(Arrays.toString(arr3));  //[0, 1, 2, 3, 0]

        System.arraycopy(arr2,0,arr3,0,arr3.length);
        System.out.println(Arrays.toString(arr3));  //[10, 2, 3, 4, 5]


    }
}
